#1、导入webdriver，打开浏览器，访问dbshop 这3个步骤不需要参与循环
#2、注册完成之后，点击退出按钮，就可以实现循环注册
#3、脚本中添加等待时间，可以提高脚本的稳定性。保存、确定、搜索、提交等操作
    #强制等待time.sleep(n)  在指定操作后面固定等待n秒
    #隐式等待dr.implicitly_wait(n)   脚本如果可以运行则不会等待，脚本如果不能运行则最多等待n秒，直到可以运行或者报错。
import time
from selenium import webdriver     #通过selenium模块导入webdriver函数
dr = webdriver.Firefox()             #定义一个变量dr，驱动火狐浏览器
dr.implicitly_wait(10)             #隐式等待10秒
dr.get("http://localhost/dbshop/") #登录dbshop网站
users=["renyang","fengbinhao","qinqian","liuzhuang","heanran"]
for userName in users:             #遍历user列表中的元素
    #参数|测试输入
    # userName="WangJiahao"
    password="123456"
    email=userName+"@qq.com"
    #脚本|操作步骤
    dr.find_element_by_link_text("注册").click()                   #点击注册
    dr.find_element_by_id("user_name").send_keys(userName)         #输入用户名
    dr.find_element_by_id("user_password").send_keys(password)     #输入密码
    dr.find_element_by_id("user_com_passwd").send_keys(password)   #确认密码
    dr.find_element_by_id("user_email").send_keys(email)           #输入邮箱
    dr.find_element_by_id("agreement").click()                     #点击同意
    dr.find_element_by_xpath('//button[@type="submit"]').click()   #点击确认
#注册比较慢，大约会注册5s左右，才会出现"退出"的链接
#脚本运行非常快，如果页面加载时间跟不上脚本的运行时间，脚本就会出错
    # time.sleep(8)
    dr.find_element_by_link_text("退出").click()                    #点击退出